package com.mes.task.manager;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.mes.common.manager.BasicManager;
import com.mes.task.manager.iface.IDemandTaskLinkManager;
import com.mes.task.dao.DemandTaskLinkDao;
import com.mes.task.domain.DemandTaskLink;
import com.mes.task.domain.PartTask;

@Component
public class DemandTaskLinkManager extends BasicManager<DemandTaskLink> implements IDemandTaskLinkManager {
	
	@Autowired
	private DemandTaskLinkDao demandTaskLinkDao;
	
	@Override
	public void taskQtyChange(PartTask partTask) throws Exception {
		// TODO Auto-generated method stub
//		// 重新更新指令链接数量
//		// 如果链接数量 大于 其在制数量，则应该一次扣除
//
//		if (partTask.getDemandLinkQty() != null
//				&& partTask.getDemandLinkQty() > partTask.getPlanQty()) {
//
//			List<DemandTaskLink> demandTaskLinks = this.demandTaskLinkDao
//					.getEffectiveLinksByTask(partTask.getTaskUid());
//			if (demandTaskLinks != null && demandTaskLinks.size() > 0) {
//				//按照升序进行排列
//				Collections.sort(demandTaskLinks,
//						new Comparator<DemandTaskLink>() {
//							public int compare(DemandTaskLink d1,
//									DemandTaskLink d2) {
//								if (d1.getDemand().getLateFinish() == null)
//									return -1;
//								if (d2.getDemand().getLateFinish() == null)
//									return 1;
//								return d2.getDemand().getLateFinish()
//										.compareTo(
//												d1.getDemand().getLateFinish());
//
//							}
//						});
//
//				double remainQty = partTask.getDemandLinkQty()
//						- partTask.getPlanQty();
//				for (DemandTaskLink demandTaskLink : demandTaskLinks) {
//					if (demandTaskLink.getLinkQty() > remainQty) {
//						demandTaskLink.setLinkQty(demandTaskLink.getLinkQty()
//								- remainQty);
//						this.update(demandTaskLink);
//						break;
//					} else {
//						remainQty -= demandTaskLink.getLinkQty();
//						this.delete(demandTaskLink);
//					}
//				}
//			}
//		}

	}
	
	
}
